home *** CD-ROM | disk | FTP | other *** search
- FC v. 2.22 (c) 2003 Maurizio Spagni
-
- FC compares two files or sets of files, in text or binary mode, and
- displays the differences between them.
-
- FC implements Paul Heckel's algorithm from the Communications of the
- Association for Computing Machinery, April 1978, p264 - p268,
- "A Technique for Isolating Differences Between Files".
-
- This algorithm has the advantage over more commonly used compare algorithms
- that it is fast and can detect differences of an arbitrary number of lines.
- For most applications the algorithm isolates differences similar to those
- isolated by the longest common subsequence.
-
- The syntax is as follows:
-
- FC [switches] [drive1:][path1]filename1 [drive2][path2]filename2 [switches]
-
- /A Display only first and last lines for each set of differences
- /B Perform a binary comparison
- /C Disregard the case of letters
- /L Compare files as ASCII text
- /LBn Set the maximum number of consecutive different ASCII lines to n
- /Mn Set the maximum differences in binary comparison to n bytes
- /N Display the line numbers on a text comparison
- /S Extend the scan to the files in subdirectories
- /T Do not expand tabs to spaces
- /W Pack white space (tabs and spaces) for text comparison
- /X Do not show context lines in text comparison
- /nnn Set to nnn lines the minimum number of consecutive matching
- lines for comparison resynchronization
-
- FC defaults to binary mode for files .EXE, .COM, .SYS, .OBJ, .BIN and .LIB.
-
- In binary mode FC shows the offset in the file of the differing bytes, their
- value in hexadecimal and, if they are ASCII printable chars, their ASCII char.
-
- By default the binary compare stops after 20 differences but that value can
- be modified through the /M switch. /M0 means "unlimited differences".
- /M is interpreted as /M0.
-
- A design limitation of this program is that, in the text mode file
- comparison, only the first 32765 lines are compared; the remaining lines are
- ignored. The line length is virtually unlimited.
-
- FC supports wildcards in the file specifications. Some words on this:
- - specifying a directory is the same as specifying all the files in that
- directory (i.e. "*.*").
- Example: "FC C:\ A:" is the same as "FC C:\*.* A:*.*"
- - if no filename2 is entered then "." (the current directory) is assumed.
- Example: "FC C:\FOO.TXT" is the same as "FC C:\FOO.TXT .\*.*"
- - if filename1 has wildcards but filename2 hasn't, then all the files
- matching filename1 are compared with the same file filename2.
- Example: "FC FOO.BK? FOO.TXT"
- All the files FOO.BK? are compared with FOO.TXT
- - if filename1 has wildcards and filename2 is a path followed by "*.*" then
- all the files matching filename1 are compared with the files with the same
- name but in the path specified by filename2 (if that file exists, of course).
- Example: "FC *.* A:*.*" or, in short, "FC . A:"
- All the files in the current directory are compared with
- their copy on A:
- - if filename1 has wildcards and filename2 too then all the files in the path
- of filename1 and matching filename1 are compared with the relevant file
- matching filename2 in the path specified by filename2 (if that file exists,
- of course).
- Example: "FC *.TXT OLDS\*.BAK"
- All the files in the current directory are compared with their
- backup copy renamed .BAK in the subdirectory OLDS.
- It's more easily done than said.
- If what you really want is to compare each file in a directory with all the
- files in another you can always use the form:
- FC *.* MYDIR\????????.???
-
- The /S option iterates the same pattern of search in the subdirectories with
- the same name in both path.
- Example: "FC /S C:*.TXT D:*.BAK"
- Assuming for example the existence of the subdirectories C:BOOK
- and D:BOOK, this command compares all the *.TXT files with their
- backup copies *.BAK in the current directories and also all the
- BOOK\*.TXT files with their backup copies BOOK\*.BAK.
-
- The exit codes for ERRORLEVEL are as follows:
- 0 All the files match
- 1 At least a pair of files differs
- 2 Invalid parameter on the command line
- 3 File not found
- 4 Error opening file(s)
-